﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Linq;

namespace ProyectoEscuela
{
    public partial class frmBajaOCambioDeSituacionDeAgente : ProyectoEscuela.frmBaseForm
    {
        dbProyectoEscuelaDataContext db = new dbProyectoEscuelaDataContext();

        public frmBajaOCambioDeSituacionDeAgente()
        {
            InitializeComponent();
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            
            if (radioButton2.Checked == true)
            {
                cmbMotivoBaja.Enabled = true;
                cmbCambioSituacion.Enabled = false;
            }
            else
            {
                cmbMotivoBaja.Enabled = false;
                cmbCambioSituacion.Enabled = true;
            
            }



        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            Persona mAgente;

            try
            {
                mAgente = db.Personas.Single(p => p.TipoDoc == cmbTipoDoc.Text.ToString() && p.Numdoc == txtNumDoc.Text.ToString());


            }
            catch (Exception ex)
            {
                frmBuscarPersona frm = new frmBuscarPersona("agente");

                frm.ShowDialog();

                mAgente = frm.getAgente();
            }

            txtApellido.Text = mAgente.Apellido;
            txtNombre.Text = mAgente.Nombre;
            txtSexo.Text = mAgente.Sexo;

            cmbTipoDoc.Text = mAgente.TipoDoc;
            txtNumDoc.Text = mAgente.Numdoc;
        }

        private void btnImprimir_Click(object sender, EventArgs e)
        {

            // VALIDACIONES 
            String msjError = "Favor de ingresar y/o seleccionar un valor";
            bool errores = false;
            Control[] controlesAValidar = {
                 txtTipoInstrumetno,
                 txtNumeroInstrumento,
                 txtLugarPresentacion
                                          };

            foreach (Control val in controlesAValidar)
            {
                if (errores == false) errores = ValVacio(val, msjError);
            }



            if (errores)
                MessageBox.Show("Favor de Verificar los datos ingresados.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            else
            {
                // ACCION EN CASO DE K VAYA BIEN...
                imprimirForm5();
                //limpiarCampos();
            }

        }

        private void imprimirForm5() 
        {
            dsAgenteBajaoCS.AgenteBajaoCSDataTable dt;
            dsAgenteBajaoCS.AgenteBajaoCSRow dr;

            dt = new dsAgenteBajaoCS.AgenteBajaoCSDataTable();
            dr = dt.NewAgenteBajaoCSRow();

            dr.apellido = txtApellido.Text;
            dr.nombre = txtNombre.Text;
            dr.tiponro = cmbTipoDoc.Text;
            dr.numdoc = txtNumDoc.Text;
            dr.sexo = txtSexo.Text;


    
//// VALORES DE CADENA POSIBLES - CAMBIO SITUACION
//Activo
//Activo / Jubilado
//Activo / Pensionado
//Jubilado
//Pensionado
//Retirado
//Otra Situación
            if (radioButton1.Checked ==true)
            switch (cmbCambioSituacion.Text)
            {
                case "Activo":
                    dr.cs_activo = "X";
                    break;

                case "Activo / Jubilado":
                    dr.cs_activojubilado = "X";
                    break;

                case "Activo / Pensionado":
                    dr.cs_activopensionado = "X";
                    break;

                case "Jubilado":
                    dr.cs_jubilado = "X";
                    break;

                case "Pensionado":
                    dr.cs_pensionado = "X";
                    break;

                case "Retirado":
                    dr.cs_retirado = "X";
                    break;

                case "Otra Situación":
                    dr.cs_otrasituacion = "X";
                    break;
            }

            //// VALORES DE CADENA POSIBLES - BAJA
            //Renuncia
            //Fallecimiento
            //Cesantía
            //Exoneración
            //Prescindibilidad
            //Por Razones de Salud
            //Otro Motivo
            if (radioButton2.Checked == true)
            switch (cmbMotivoBaja.Text)
            {
                case "Renuncia":
                    dr.b_renuncia = "X";
                    break;

                case "Fallecimiento":
                    dr.b_fallecimiento = "X";
                    break;

                case "Cesantía":
                    dr.b_cesantia = "X";
                    break;

                case "Exoneración":
                    dr.b_exoneracion = "X";
                    break;

                case "Prescindibilidad":
                    dr.b_prescindibilidad = "X";
                    break;

                case "Por Razones de Salud":
                    dr.b_razonessalud = "X";
                    break;

                case "Otro Motivo":
                    dr.b_otromotivo = "X";
                    break;
            }


            // SIGUE ACÁ CARGANDO DATOS..
            dr.instrumentotipo = txtTipoInstrumetno.Text;
            dr.instrumentonro = txtNumeroInstrumento.Text;
            dr.lugarpresentacion = txtLugarPresentacion.Text;
            dr.fechapresentacion = cmbFechaPresentacion.Value.ToLongDateString();


         
            dt.Rows.Add(dr);

            rptBajaOCambioDeSituacionDeAgenteF5 rpt;
            rpt = new rptBajaOCambioDeSituacionDeAgenteF5();
            rpt.SetDataSource((DataTable)dt);

            frmReportForm frm;
            frm = new frmReportForm(rpt);
            frm.ShowDialog();
        }

        private bool ValVacio(Control miControl, String mensajeError)
        {
            // devuelve true si es vacio
            bool bStatus = false;
            if (miControl.Text == "")
            {
                errorProvider1.SetError(miControl, mensajeError);
                bStatus = true;
            }
            else
                errorProvider1.SetError(miControl, "");
            return bStatus;
        }
   


    }
}
